Conversation
This was referenced Sep 9, 2026
Introduce API registration, request context, version validation, and asynchronous error mapping. Fix request buffer ownership and response serialization cleanup while preserving the existing ApiVersions entry point. Validated with mvn -o -pl fluss-rpc,fluss-kafka verify. Co-Authored-By: Codex <noreply@openai.com> AI-Model: gpt-6 AI-Contributed/Feature: 555/555 AI-Contributed/UT: 525/525
Catch failures while mapping asynchronous handler results so the dispatcher future completes exceptionally instead of remaining pending. Cover handler futures that fail before and after dispatch registers its callback. Validated with Java 11: Maven reactor build and 17 targeted Kafka tests, including Checkstyle, Spotless, and license checks. Co-Authored-By: Codex <noreply@openai.com> AI-Model: gpt-6 AI-Contributed/Feature: 27/27 AI-Contributed/UT: 28/28
Route requests through the dispatcher and advertise only implemented APIs. Return version-aware errors for unsupported APIs and invalid requests. Validated with mvn -o -pl fluss-kafka verify (23 unit tests and 1 IT). Co-Authored-By: Codex <noreply@openai.com> AI-Model: gpt-6 AI-Contributed/Feature: 313/313 AI-Contributed/UT: 137/137
gyang94
force-pushed
the
codex/kafka-api-versions
branch
from
September 17, 2026 02:38
0ea02c7 to
5742b36
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Closes #4265.
Part of umbrella #4185; this PR does not close the umbrella.
Implement ApiVersions negotiation using the capabilities actually registered on the server, and connect the Kafka request entry point to the asynchronous dispatcher. Depends on #4264 and its implementation PR #4259.
Brief change log
Incremental scope: 4 files, +207 / -243 lines, including tests.
Tests
Validated with Java 11 against a temporary checkout whose tracked source files are identical to this rebased head:
mvn -o -pl fluss-kafka -am test '-Dtest=Kafka*Test,KafkaRequestITCase' -Dsurefire.failIfNoSpecifiedTests=false: 25 unit tests and 1 integration test passed.git diff --checkpassed.git range-diffconfirms that the PR02 patch is unchanged after rebasing onto PR01c557efc22af0b8225f1ebbdd629423cdf409a193.The entire repository test suite was not run.
API and Format
ApiVersions now reports registered capabilities. No Fluss public API or storage-format change. Produce, Metadata, and topic administration are not implemented in this stage.
Documentation
The supported-capability boundary is documented in this PR and the handler Javadoc.
Stack and review
This PR remains a draft until its prerequisite lands. The direct base is PR01
c557efc22af0b8225f1ebbdd629423cdf409a193; this PR's head is5742b36627fe156a8cf499f0aa7b4b8c4163e9a7.Because the target is Apache main, GitHub's Files changed view includes the prerequisite. For this stage alone, review the incremental comparison. Rebase onto the updated main after the prerequisite is merged and before marking ready.
Generative AI disclosure: Codex assisted with implementation, testing, and commit organization. Human review is required before merge.